# Basic configuration for the standalone RAG service

# Database Configuration (SQLite for simplicity, user can change to PostgreSQL)
SQLALCHEMY_DATABASE_URI = "sqlite:///./standalone_rag.db"
SQLALCHEMY_TRACK_MODIFICATIONS = False

# Folder for uploaded documents
UPLOAD_FOLDER = "/home/ubuntu/independent_rag_service/uploads"

# Provider include/exclude sets (can be configured as needed)
POSITION_PROVIDER_INCLUDES_SET = set()
POSITION_PROVIDER_EXCLUDES_SET = set()

# File signing and access configurations
FILES_URL = "/files"  # Base URL for accessing files, can be adjusted based on deployment
SECRET_KEY = "a_very_secret_key_for_standalone_rag_service_please_change_me" # CHANGE THIS IN PRODUCTION
FILES_ACCESS_TIMEOUT = 3600  # In seconds, e.g., 1 hour

# Token Expiry (example, can be adjusted or expanded)
INVITE_TOKEN_EXPIRY_MINUTES = 1440 # 1 day
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES = 60 # 1 hour
API_TOKEN_EXPIRY_MINUTES = 43200 # 30 days (example for a generic API token)

# Retrieval Service Configuration
RETRIEVAL_SERVICE_EXECUTORS = 2 # Number of executor threads for retrieval service

# Debug mode (True for development, False for production)
DEBUG = True # Added for cached_embedding.py

# Keyword Store Configuration (e.g., "jieba")
KEYWORD_STORE = "jieba" # Default keyword store, can be changed

# Vector Store Configuration
VECTOR_STORE = "qdrant"  # Default vector store, can be changed to any supported VectorType e.g. "milvus", "weaviate", "chroma"
VECTOR_STORE_WHITELIST_ENABLE = False # Set to True to enable vector store whitelisting (requires Whitelist model)

# Redis Configuration (example, adjust as needed if Redis is used)
# REDIS_HOST = "localhost"
# REDIS_PORT = 6379
# REDIS_DB = 0
# REDIS_USE_SSL = False # Set to True if using SSL for Redis
# REDIS_USERNAME = None # Set if Redis requires authentication
# REDIS_PASSWORD = None # Set if Redis requires authentication

# Other configurations can be added here as needed

